package com.caipos.util;

import org.springframework.lang.Nullable;
import org.springframework.util.ObjectUtils;

public final class ObjectUtil extends ObjectUtils {

    private ObjectUtil() {
    }

    public static boolean isNotEmpty(@Nullable Object obj) {
        return !isEmpty(obj);
    }

    /**
     * 如果指定对象为{@code null}返回默认值
     *
     * @param object       指定对象
     * @param defaultValue 默认值
     * @param <T>          对象类型
     * @return 被检查对象为{@code null}返回默认值，否则返回原值
     */
    public static <T> T defaultIfNull(final T object, final T defaultValue) {
        return null == object ? defaultValue : object;
    }

    /**
     * 强制转换，用于避免无边界通配符的泛型类型强制转换时的警告
     *
     * @param obj obj
     * @param <T> 要强制转换的类型
     * @return 强制转换类型后的对象
     */
    @SuppressWarnings("unchecked")
    public static <T> T cast(Object obj) {
        return (T) obj;
    }
}

